Appearance
HJ59 找出字符串中第一个只出现一次的字符
本节目标:理解“HJ59 找出字符串中第一个只出现一次的字符”的核心思路,并能把它用于实际开发或面试表达。
说明:原 OneNote 中有图片引用,但图片未包含在导出目录中;本页保留了可用的文字与代码内容。 中等 通过率:31.62% 时间限制:1秒 空间限制:32M 知识点==字符串==
校招时部分企业笔试将禁止编程题跳出页面,为提前适应,练习时请使用在线自测,而非本地IDE。 描述 找出字符串中第一个只出现一次的字符
数据范围:输入的字符串长度满足 1≤�≤1000 1≤n≤1000
输入描述: 输入一个非空字符串 输出描述: 输出第一个只出现一次的字符,如果不存在输出-1 示例1 输入: asdfasdfo ==复制== 输出: o
为了找出字符串中第一个只出现一次的字符,我们可以使用一个简单的算法,该算法具有两个步骤:
- 计数:遍历字符串,用一个字典或数组来计数每个字符出现的次数。
- 查找:再次遍历字符串,检查每个字符的出现次数,返回第一个出现次数为1的字符。
这个算法的时间复杂度是O(n),因为我们需要两次遍历字符串,其中n是字符串的长度。空间复杂度依赖于存储字符计数的数据结构,通常是O(1),因为字符集的大小是有限的。
下面是实现这个算法的Python代码示例:
def firstUniqChar(s):
计数
char_count = {} for char in s: if char in char_count: char_count[char] += 1 else: char_count[char] = 1 # 查找 for char in s: if char_count[char] == 1: return char return -1
示例
s = "asdfasdfo" print(firstUniqChar(s)) # 输出: o
这段代码首先通过遍历字符串s来填充 char_count 字典,其中键是字符,值是该字符出现的次数。之后,它再次遍历字符串,查找并返回第一个出现次数为1的字符。如果没有这样的字符,它返回-1。
